home *** CD-ROM | disk | FTP | other *** search
/ Tricks of the Mac Game Programming Gurus / TricksOfTheMacGameProgrammingGurus.iso / More Source / Libraries / PlayerPRO 4.4.1 / Filters Plugs / Bug 16bit Restore.c < prev    next >
C/C++ Source or Header  |  1995-04-16  |  1KB  |  61 lines

  1. /*
  2.     Player PRO 4.15x PlugIns
  3.  
  4.     Antoine ROSSET
  5.     16 Tranchees
  6.     1206 GENEVA
  7.     SWITZERLAND
  8.     
  9.     FAX: 022 789 35 03
  10.     Compuserve: 100277,164
  11. */
  12.  
  13. #include "MAD.h"
  14. #include "PPPlug.h"
  15.  
  16. #if defined(powerc) || defined(__powerc)
  17. enum {
  18.         PlayerPROPlug = kCStackBased
  19.         | RESULT_SIZE(SIZE_CODE( sizeof(OSErr)))
  20.         | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof( Ptr*)))
  21.         | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof( struct FileInstrData*)))
  22.         | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof( long)))
  23.         | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof( long)))
  24.         | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof( PPInfoPlug*)))
  25. };
  26.  
  27. ProcInfoType __procinfo = PlayerPROPlug;
  28. #else
  29. #include <A4Stuff.h>
  30. #endif
  31.  
  32.  
  33. OSErr main(     Ptr                        *InstrumentPtr,
  34.                 struct FileInstrData    *theData,
  35.                 long                    SelectionStart,
  36.                 long                    SelectionEnd,
  37.                 PPInfoPlug                *thePPInfoPlug)
  38. {
  39. long            i;
  40. Ptr                Sample8Ptr = *InstrumentPtr;
  41. unsigned short    *Sample16Ptr = (unsigned short*) *InstrumentPtr;
  42.  
  43.     if( Sample8Ptr == 0L) return noErr;
  44.     
  45.     switch( theData->amplitude)
  46.     {
  47.         case 8:
  48.             return noErr;
  49.         break;
  50.         
  51.         case 16:
  52.             for( i = 0; i < theData->insSize; i++)
  53.             {
  54.                 *Sample8Ptr -= 0x80;
  55.                 Sample8Ptr++;
  56.             }
  57.         break;
  58.     }
  59.     
  60.     return noErr;
  61. }